來畫個簡易迷宮吧!產生迷宮的方式有好幾種,通常可以使用 DFS 繪製較為簡易,但是由於 state 的關係我們必須自己模擬遞迴。
在繪製迷宮之前,我們可以簡單介紹一下在 Typst 裡面的偽隨機數產生器 suiji
套件。由於近期他們將底層置換為 wasm, 整體效率有提高~
我們可以使用 #rng = gen-rng-f(seed)
得到一個偽隨機數產生器,並且使用 integers-f
或 random-f
產生偽隨機數,或是使用 shuffle-f
產生隨機排列。在 Typst 裡面並沒有物件的觀念,所以引入函數以後還是需要把 rng
傳進去。
例如,我們想要產生 10 個 $(0, 1)$ 之間的浮點數,可以使用:
注意到它回傳了兩個東西,一個是修改後的 rng
另一個才是輸出的陣列。